$(function () {
    // 0.定义格式化时间过滤器
    template.defaults.imports.dateFormat = function (dtstr) {
        let dt = new Date(dtstr)
        let a = dt.getFullYear()
        let b = padZero(dt.getMonth() + 1)
        let c = padZero(dt.getDate())
        let d = padZero(dt.getHours())
        let e = padZero(dt.getMinutes())
        let f = padZero(dt.getSeconds())
        return `${a}-${b}-${c} ${d}:${e}:${f}`
    }
    function padZero(n) {
        return n > 9 ? n : "0" + n
    }



    // 1.定义查询参数
    // q是query 查询的意思
    let q = {
        pagenum: 1, //是	int	页码值
        pagesize: 2,//	是	int	每页显示多少条数据
        cate_id: "", //否	string	文章分类的 Id
        state: "", //否	string	文章的状态，可选值有：已发布、草稿
    }

    // 2.渲染文章列表页面
    initTable()
    let layer = layui.layer
    function initTable() {
        $.ajax({
            method: "GET",
            url: "/my/article/list",
            data: q,
            success: function (res) {
                // console.log(res);
                if (res.status != 0) {
                    return layer.msg(res.message)
                }
                // 成功后渲染（传递对象，使用属性）
                let str = template("tpl-table", res);
                $("tbody").html(str)
                renderPage(res.total)
            }
        })
    }

    // 3.初始化文章分类
    let form = layui.form
    initCate()
    function initCate() {
        $.ajax({
            url: "/my/article/cates",
            success: function (res) {
                // console.log(res);
                if (res.status != 0) {
                    return layer.msg(res.message);
                }
                // 成功后渲染
                let str = template("tpl-cate", res)
                // console.log(str);
                $("[name=cate_id]").html(str);
                form.render();
            }
        })
    }

    // 4.筛选
    $("#search").on("submit", function (e) {
        e.preventDefault();
        // 修改参数
        let cate_id = $("[name=cate_id]").val()
        let state = $("[name=state]").val()
        q.cate_id = cate_id
        q.state = state
        // 初始化文章列表
        initTable()
    })

    // 5.分页
    function renderPage(total) {
        // alert(total)
        var laypage = layui.laypage;
        laypage.render({
            elem: 'pageBox' //注意，这里的 test1 是 ID，不用加 # 号
            , count: total, //数据总数，从服务端得到
            limit: q.pagesize,
            curr: q.pagenum,
            layout: ['count', 'limit', 'prev', 'page', 'next', 'skip'],
            limits: [2, 3, 5, 10, 15],
            jump: function (obj, first) {
                //obj所有参数所在对象：first是否是第一次初始化分页
                // 改变当前页
                q.pagenum = obj.curr
                q.pagesize = obj.limit
                //首次不执行
                if (!first) {
                    //   初始化文章列表
                    initTable()
                }
            }

        });
    }

    // 6.删除事件代理
    // let layer = layui.layer;
    $("tbody").on("click", ".btn-delete", function () {
        // 获取id进入到函数中this代指就改变了
        let Id = $(this).attr("data-id");
        // 显示对话
        layer.confirm("是否确认删除！", { icon: 3, title: "提示" }, function (index) {
            $.ajax({
                method: "GET",
                url: "/my/article/delete/" + Id,
                success: function (res) {
                    if (res.status != 0) {
                        return layer.msg(res.message)
                    }
                    // 因为更新成功了所以更新渲染页面中的数据
                    layer.msg("恭喜您，文章删除成功！");
                    if ($(".btn-delete").length == 1 && q.pagenum > 1) {
                        q.pagenum--
                    }
                    initTable();
                }
            })
            // 关闭弹窗
            layer.close(index)
        });


    })





})